package com.app.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 燃气详细信息
 * </p>
 *
 * @author yoominic
 * @since 2024-07-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("tb_gas_details")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GasDetails implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 燃气详细信息ID
     */
    @ApiModelProperty(value = "燃气详细信息表id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 户号
     */
    @ApiModelProperty(value = "户号")
    private String account;
    @ApiModelProperty(value = "户主姓名")
    private String userName;
    @ApiModelProperty(value = "燃气表地址")
    private String userAddress;

    /**
     * 联系电话
     */
    @ApiModelProperty(value = "户主联系电话")
    private String userPhone;

    /**
     * 余额
     */
    @ApiModelProperty(value = "账户余额（元）")
    private BigDecimal balance;

    @ApiModelProperty(value = "燃气表编号")
    private String gasNumber;

    /**
     * 燃气表余额
     */
    @ApiModelProperty(value = "燃气表余额（m³）")
    private BigDecimal gasMeterBalance;

    @ApiModelProperty(value = "燃气表总量 从装表到现在")
    private BigDecimal gasMeterTotal;

    @ApiModelProperty(value = "燃气表总购买量")
    private BigDecimal totalPurchaseAmount;

    /**
     * 缴费单位名称
     */
    @ApiModelProperty(value = "缴费单位名称")
    private String companyName;

    /**
     * 缴费单位id
     */
    @ApiModelProperty(value = "缴费单位id")
    private Integer companyId;


    /**
     * 安装日期
     */
    @ApiModelProperty(value = "安装日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private LocalDateTime installTime;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String notes;


    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;

    private Integer createUser;

    private Integer updateUser;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;


    /**
     * 状态 1正常 0作废
     */
    @ApiModelProperty(value = "状态 1正常 0作废")
    private Integer status;
    /**
     * 单价
     */
    @ApiModelProperty(value = "单价（元/m³）")
    private BigDecimal unitPrice;
    /**
     * 阀门状态 1开  0阀门是关闭的
     */
    @ApiModelProperty(value = "阀门状态 1开  2阀门是关闭的")
    private Integer valveStatus;
    /**
     * 开户状态 1开户 0未开户
     */
    @ApiModelProperty(value = "开户状态 1开户 0未开户")
    private Integer accountOpeningStatus;
    /**
     * 通讯记录日期
     */
    @ApiModelProperty(value = "通讯记录日期")
    private LocalDateTime communicationRecordDate;

    @TableField(exist = false)
    private List<PaymentRecordsLog> paymentRecordsLogs;

}
